package com.glodon.ggzy.entity;

import java.util.Date;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.GenericGenerator;

/**
 * GgJsTenderNotice entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "GG_JS_TENDER_NOTICE")
public class GgJsTenderNotice implements java.io.Serializable {

	// Fields    

	private String id;

	private String projectId;

	private String projectCode;

	private String projectName;

	private String noticeName;

	private String noticeType;

	private String enteQualRequ;

	private String projCateQual;

	private Date applyStartTime;

	private Date applyEndTime;

	private Double tenderFilePrice;

	private Date fileStartTime;

	private Date fileEndTime;

	private String noticeContent;

	private String remark;

	private String noticeText;

	private String applyAddress;

	private String applyInformation;

	private byte[] noticeImage;

	// Constructors

	/** default constructor */
	public GgJsTenderNotice() {
	}

	/** full constructor */
	public GgJsTenderNotice(String projectId, String projectCode, String projectName, String noticeName, String noticeType, String enteQualRequ,
			String projCateQual, Date applyStartTime, Date applyEndTime, Double tenderFilePrice, Date fileStartTime, Date fileEndTime,
			String noticeContent, String remark, String noticeText, String applyAddress, String applyInformation, byte[] noticeImage) {
		this.projectId = projectId;
		this.projectCode = projectCode;
		this.projectName = projectName;
		this.noticeName = noticeName;
		this.noticeType = noticeType;
		this.enteQualRequ = enteQualRequ;
		this.projCateQual = projCateQual;
		this.applyStartTime = applyStartTime;
		this.applyEndTime = applyEndTime;
		this.tenderFilePrice = tenderFilePrice;
		this.fileStartTime = fileStartTime;
		this.fileEndTime = fileEndTime;
		this.noticeContent = noticeContent;
		this.remark = remark;
		this.noticeText = noticeText;
		this.applyAddress = applyAddress;
		this.applyInformation = applyInformation;
		this.noticeImage = noticeImage;
	}

	// Property accessors
	@GenericGenerator(name = "generator", strategy = "uuid.hex")
	@Id
	@GeneratedValue(generator = "generator")
	@Column(name = "ID", unique = true, nullable = false, length = 40)
	public String getId() {
		return this.id;
	}

	public void setId(String id) {
		this.id = id;
	}

	@Column(name = "PROJECT_ID", length = 40)
	public String getProjectId() {
		return this.projectId;
	}

	public void setProjectId(String projectId) {
		this.projectId = projectId;
	}

	@Column(name = "PROJECT_CODE", length = 100)
	public String getProjectCode() {
		return this.projectCode;
	}

	public void setProjectCode(String projectCode) {
		this.projectCode = projectCode;
	}

	@Column(name = "NOTICE_NAME", length = 256)
	public String getNoticeName() {
		return this.noticeName;
	}

	public void setNoticeName(String noticeName) {
		this.noticeName = noticeName;
	}

	@Column(name = "NOTICE_TYPE", length = 50)
	public String getNoticeType() {
		return this.noticeType;
	}

	public void setNoticeType(String noticeType) {
		this.noticeType = noticeType;
	}

	@Column(name = "ENTE_QUAL_REQU", length = 512)
	public String getEnteQualRequ() {
		return this.enteQualRequ;
	}

	public void setEnteQualRequ(String enteQualRequ) {
		this.enteQualRequ = enteQualRequ;
	}

	@Column(name = "PROJ_CATE_QUAL", length = 256)
	public String getProjCateQual() {
		return this.projCateQual;
	}

	public void setProjCateQual(String projCateQual) {
		this.projCateQual = projCateQual;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "APPLY_START_TIME", length = 20)
	public Date getApplyStartTime() {
		return this.applyStartTime;
	}

	public void setApplyStartTime(Date applyStartTime) {
		this.applyStartTime = applyStartTime;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "APPLY_END_TIME", length = 20)
	public Date getApplyEndTime() {
		return this.applyEndTime;
	}

	public void setApplyEndTime(Date applyEndTime) {
		this.applyEndTime = applyEndTime;
	}

	@Column(name = "TENDER_FILE_PRICE", precision = 24, scale = 4)
	public Double getTenderFilePrice() {
		return this.tenderFilePrice;
	}

	public void setTenderFilePrice(Double tenderFilePrice) {
		this.tenderFilePrice = tenderFilePrice;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FILE_START_TIME", length = 20)
	public Date getFileStartTime() {
		return this.fileStartTime;
	}

	public void setFileStartTime(Date fileStartTime) {
		this.fileStartTime = fileStartTime;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FILE_END_TIME", length = 20)
	public Date getFileEndTime() {
		return this.fileEndTime;
	}

	public void setFileEndTime(Date fileEndTime) {
		this.fileEndTime = fileEndTime;
	}

	@Column(name = "NOTICE_CONTENT", length = 512)
	public String getNoticeContent() {
		return this.noticeContent;
	}

	public void setNoticeContent(String noticeContent) {
		this.noticeContent = noticeContent;
	}

	@Column(name = "REMARK", length = 512)
	public String getRemark() {
		return this.remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	@Column(name = "NOTICE_TEXT")
	public String getNoticeText() {
		return this.noticeText;
	}

	public void setNoticeText(String noticeText) {
		this.noticeText = noticeText;
	}

	@Column(name = "APPLY_ADDRESS", length = 512)
	public String getApplyAddress() {
		return this.applyAddress;
	}

	public void setApplyAddress(String applyAddress) {
		this.applyAddress = applyAddress;
	}

	@Column(name = "APPLY_INFORMATION", length = 1024)
	public String getApplyInformation() {
		return this.applyInformation;
	}

	public void setApplyInformation(String applyInformation) {
		this.applyInformation = applyInformation;
	}

	@Lob
	@Basic(fetch = FetchType.LAZY)
	@Column(name = "NOTICE_IMAGE", columnDefinition = "BLOB", nullable = true)
	public byte[] getNoticeImage() {
		return noticeImage;
	}

	public void setNoticeImage(byte[] noticeImage) {
		this.noticeImage = noticeImage;
	}

	@Column(name = "PROJECT_NAME", length = 512)
	public String getProjectName() {
		return projectName;
	}

	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}

}
